/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import java.io.Serializable;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;


public class Deposito implements Serializable {
    private String numeroDeposito;
    private double montoDeposito;
    private String monedaDeposito;
    private boolean retorno;

    public Deposito() {
    }

    public boolean isRetorno() {
        return retorno;
    }

    public void setRetorno(boolean retorno) {
        this.retorno = retorno;
    }

    

    public String getNumeroDeposito() {
        return numeroDeposito;
    }

    public void setNumeroDeposito(String numeroDeposito) {
        this.numeroDeposito = numeroDeposito;
    }

    public double getMontoDeposito() {
        return montoDeposito;
    }

    public void setMontoDeposito(double montoDeposito) {
        this.montoDeposito = montoDeposito;
    }

    public String getMonedaDeposito() {
        return monedaDeposito;
    }

    public void setMonedaDeposito(String monedaDeposito) {
        this.monedaDeposito = monedaDeposito;
    }

    
    //registrar
     public static boolean registrarDeposito (Deposito a)
    {
        boolean estado = false ;
        Connection conexion=null;
         try{
             conexion=ControladorBD.darConexionBD();
             CallableStatement st=conexion.prepareCall(" {call sp_registrarDeposito "
                     +"(?,?,?,?)} ");
             st.setString(1,a.getNumeroDeposito());
             st.setDouble(2,a.getMontoDeposito());
             st.setString(3,a.getMonedaDeposito());
             st.registerOutParameter(4,java.sql.Types.BOOLEAN);
             st.execute();
             a.setRetorno(st.getBoolean(4));
             if(a.isRetorno()==true)
             {
                 estado=true;
             }
        st.close();
        conexion.close();
             
         } catch(Exception error){
             System.out.println("Error en el metodo por: "+ error.getMessage());
                                 error.printStackTrace();
         }
         
        return estado;  
        
    } 
     
     //listar los depositos efectuados
     public static ArrayList<Deposito> getListarCategoria(){ 
     ArrayList<Deposito> arreglo =new  ArrayList<Deposito>();
    if (arreglo.size()==0){         
        Deposito obj=null;
    Connection conexion = null;
    ResultSet rs = null;
    try{
    conexion = ControladorBD.darConexionBD();
    CallableStatement st = conexion.prepareCall
  ( "{call sp_listarDeposito()}");    
    rs = st.executeQuery();        
    if (rs.next()){          
        do{
        obj =new Deposito();
        obj.setNumeroDeposito(rs.getString("numeroDeposito"));
        obj.setMontoDeposito(rs.getDouble("montoDeposito"));
        obj.setMonedaDeposito(rs.getString("monedaDeposito"));
        arreglo.add(obj);
       } while (rs.next());
    }  
         rs.close();
         st.close();
         conexion.close();

     }catch(Exception error){
        System.out.println("Error en el metodo por: " +
                   error.getMessage());
                error.printStackTrace();
        }    
      }  
    return arreglo;
    } 
    
}
